
const fs = require('fs')

/*
  fs.existsSync(path)
 */
const exist = fs.existsSync('aa.png')
// console.log(exist);

/*
  fs.stat(path[, options], callback)
  fs.statSync(path[, options])
    - 获取文件的状态
    - 它会给我们返回一个对象，这个对象中保存了当前对象状态的相关信息
 */
fs.stat('aa.png', function (err, stat) {
  /**
   * size 文件的大小
   * isFile() 是否是一个文件
   * stats.isDirectory() 是否是一个文件夹
   */
  // console.log(stat.size);
})

/*
  fs.unlink(path, callback)
  fs.unlinkSync(path)
    - 删除文件
 */
// fs.unlinkSync('bb.png')

/*
  fs.readdir(path[, options], callback)
  fs.readdirSync(path[, options])
    - 读取一个目录的目录结构
        files 是一个字符串数组，没有给元素就是一个文件件或文件的名字
 */
fs.readdir('.', function (err, files) {
  if (!err) {
    // console.log(files);
  }
})

/*
  fs.truncate(path[, len], callback)
  fs.truncateSync(path[, len])
    - 截断文件，将文件修改为指定大小
 */
// fs.truncateSync('hello.txt', 3)

/*
  fs.mkdir(path[, options], callback)
  fs.mkdirSync(path[, options])
    - 创建一个文件目录

  fs.rmdir(path[, options], callback)
  fs.rmdirSync(path[, options])
    - 删除一个文件目录
 */
// fs.mkdirSync('test')
// fs.rmdirSync('test')

/*
  fs.rename(oldPath, newPath, callback)
  fs.renameSync(oldPath, newPath)
    - 对文件进行重命名
    - 参数
        oldPath 旧的路劲
        newPath 新的路劲
        callback 回调函数
 */
// fs.renameSync('fileico.png', 'ico_bak.png')

/*
  fs.watch(filename[, options][, listener])
  fs.watchFile(filename[, options], listener)
    - 监视文件的修改
    - 参数
        filename 要监视的文件名
        options 配置选项
        listener 回调函数，当文件发生变化时，回调函数会执行
           在回调函数中有两个参数
              curr 当前文件的状态
              prev 修改文件前的状态
                - 这两个都是stats的对象
 */
fs.watchFile('hello.txt', { interval: 1000 }, function (curr, prev) {
  console.log('修改前文件大小：' + prev.size)
  console.log('修改后文件大小：' + curr.size)
})
